@局外人
2年前 提问
1个回答

modbus tcp协议有哪些固有安全缺陷

帅末
2年前

modbus tcp协议有以下固有安全缺陷:

  • 缺乏认证:认证的目的是保证收到的信息来自合法的用户,未认证用户向设备发送的控制命令不会被执行。在Modbus协议的通信过程中,没有任何认证方面的相关定义,攻击者只需要找到一个合法的地址就可以使用功能码并建立一个Modbus通信会话,从而扰乱整个或者部分控制过程。

  • 缺乏授权:授权用来保证不同的特权操作由拥有不同权限的认证用户来完成,这样可以大大降低误操作与内部攻击的概率。目前,Modbus协议没有基于角色的访问控制机制,也没有对用户进行分类,没有对用户的权限进行划分,这会导致任意用户可以执行任意功能。

  • 缺乏加密:加密可以保证通信过程中双方的信息不被第三方非法获取。在Modbus协议的通信过程中,地址和命令全部采用明文传输,因此数据可以很容易地被攻击者捕获和解析,为攻击者提供便利。

  • 缓冲区溢出漏洞:缓冲区溢出是指在向缓冲区内填充数据时超过了缓冲区本身的容量,导致溢出的数据覆盖在合法数据上,这是在软件开发中最常见也是非常危险的漏洞,可以导致系统崩溃,或者被攻击者用来控制系统。Modbus系统开发者大多不具备安全开发知识,这样就会产生很多的缓冲区溢出漏洞,一旦被恶意者利用就会导致严重的后果。

  • 功能码滥用:功能码是Modbus协议中的一项重要内容,几乎所有的通信都包含功能码。目前,功能码滥用是导致Modbus网络异常的一个主要因素。例如,不合法报文长度、短周期的无用命令、不正确的报文长度、确认异常代码延迟等都有可能导致拒绝服务攻击。